#include <iostream>
#include <stdio.h>

using namespace std;

// 仅支持int数组
class Arr{
    // 私有成员变量（私有属性）
private:
    int* data;
    int size;
public:
    // 构造函数
    Arr(int* arr, int n):data(arr),size(n){}
    // 析构函数
    ~Arr(){}
    // 获取 size 方法
    int get_size(){
        return size;
    }
    // show 方法  
    void show(){
        cout << "数组size： " << size << endl;
        for(int i = 0; i < size; i++){
            cout << data[i];
            cout << ' ';
        }
    }
};

int main() {

    int arr[] = {1,0,1,0,1};
    int n = sizeof(arr)/sizeof(arr[0]);

// 三种实例化方式（模板）：
// 一、隐式创建
    Arr a(arr,n);
    a.show();
    cout << "\n隐式创建：对象 a: "  << &a << endl;
// 二、new创建
    auto* b = new Arr(arr,n);
    b->show();
    cout << "\n隐式创建：对象 b: "  << b << endl;
// 三、显示创建
    Arr c = Arr(arr,n);
    c.show();
    cout << "\n隐式创建：对象 c: "  << &c << endl;

    return 0;

}